Using content structure to socially connect users

ABSTRACT

The structure of a digital content item is used to socially connect users consuming the digital content item. The structured representation of the digital content item is determined. This structured representation is analyzed to identify key events within the digital content item. A user&#39;s current location within the digital content item is identified. Social communications of the user are filtered responsive to the user&#39;s current location and the identified key events within the digital content item. In this way, the user may peruse social media without inadvertently reading communications that give away (e.g., spoil) key events such as important plot points.

TECHNICAL FIELD

This disclosure relates generally to the field of digital content, andspecifically to social interactions among consumers of digital contentsuch as electronic books.

BACKGROUND

Many people now consume books and other content items electronically.Electronic books (“ebooks”) in particular can be read using a variety ofreading devices, such as dedicated reading devices and general-purposecomputing devices. Each device includes reading software (an “ereader”)that displays an ebook to a user and enables the user to read the ebookand perform other tasks.

Oftentimes people read ebooks as part of a social experience. Forexample, a reader might belong to a book club in which a group of peopleread and discuss the ebook together. The people can meet in person orvia electronic forums.

However, a reader may have difficulty managing the online social readingexperience for an ebook. Different people participating in an electronicforum may have different knowledge of the ebook. A reader may thereforeinstigate a discussion of an important plot point that another readerhas not yet encountered. As a result, a person who participates in anelectronic forum while reading an ebook risks having details such asimportant plot points spoiled by contributions from other readers. Thesocial reading experience may therefore detract from the reader'senjoyment of the ebook.

SUMMARY

The above and other problems are addressed by a method andnon-transitory computer-readable storage medium for using a structure ofa digital content item to socially connect users consuming the digitalcontent item. An embodiment of the method comprises determining astructured representation of the digital content item and analyzing thestructured representation to identify key events within the digitalcontent item. The method further comprises identifying a user's currentlocation within the digital content item and filtering socialcommunications of the user responsive to the user's current location andthe identified key events within the digital content item.

An embodiment of the non-transitory computer-readable storage mediumcomprises executable computer program instructions executable to performsteps comprising determining a structured representation of the digitalcontent item and analyzing the structured representation to identify keyevents within the digital content item. The steps further compriseidentifying a user's current location within the digital content itemand filtering social communications of the user responsive to the user'scurrent location and the identified key events within the digitalcontent item.

The above and other problems are addressed by a computing device forusing a structure of a digital content item to socially connect a userconsuming the digital content item using the computing device. Anembodiment of the computing device comprises a computer processor forexecuting computer program instructions and a non-transitorycomputer-readable storage medium storing computer program instructions.The instructions are executable to perform steps comprising identifyingkey events within the digital content item and identifying the user'scurrent location within the digital content item. The instructions arefurther executable to perform the steps of filtering socialcommunications of the user responsive to the user's current location andthe identified key events within the digital content item.

The features and advantages described in the specification are not allinclusive and, in particular, many additional features and advantageswill be apparent to one of ordinary skill in the art in view of thedrawings, specification, and claims. Moreover, it should be noted thatthe language used in the specification has been principally selected forreadability and instructional purposes, and may not have been selectedto delineate or circumscribe the disclosed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a computing environment for using content structure tosocially connect users.

FIG. 2 is a high-level block diagram of a computer for acting as thecontent structure server, the social communications server, and/or aclient according to one embodiment.

FIG. 3 is a high-level block diagram illustrating details of the contentstructure server according to one embodiment.

FIG. 4 is a high-level block diagram illustrating details of thepresentation module of a client according to one embodiment.

FIG. 5 is a high-level block diagram illustrating details of the socialcommunications server according to one embodiment.

FIG. 6 is a flowchart illustrating a process for using content structureto socially connect users according to one embodiment.

DETAILED DESCRIPTION

The Figures (FIGS.) and the following description describe certainembodiments by way of illustration only. One skilled in the art willreadily recognize from the following description that alternativeembodiments of the structures and methods illustrated herein may beemployed without departing from the principles described herein.Reference will now be made in detail to several embodiments, examples ofwhich are illustrated in the accompanying figures. It is noted thatwherever practicable similar or like reference numbers may be used inthe figures to indicate similar or like functionality. This descriptionidentifies certain illustrated elements using reference numbers followedby letters. For clarity, this description often uses only the referencenumber to refer to any or all of the entities having that referencenumber.

In this disclosure, “digital content” generally refers to anymachine-readable and machine-storable content, such as electronic books(ebooks), other digital text content (e.g., digital newspapers, digitalnews stories, electronic magazines, etc.), videos, and music. A “digitalcontent item” refers to a particular piece of digital content, such as aparticular ebook. The following discussion focuses on ebooks andtherefore often describes use cases and examples involving ebooks andrefers to the consumers of the content as “readers.” However, thetechniques described herein can also be used with other types of digitalcontent.

FIG. 1 shows a computing environment 100 for using content structure tosocially connect users. The computing environment 100 includes a contentstructure server 110, a social communications server 120, and multipleclients 130A, 130B, 130C connected by a communications network 140. Onlyone content structure server 110, one social communications server 120,and three clients 130A, 130B, 130C are shown in FIG. 1 in order tosimplify and clarify the description. Embodiments of the computingenvironment 100 can have multiple content structure servers 110 andsocial communications servers 120, and many clients 130A, 130B, 130Cconnected to the network 140. Likewise, the functions performed by thevarious entities of FIG. 1 may differ in different embodiments.

The content structure server 110 determines the structures of digitalcontent items, such as ebooks. As used herein, the “structure” refers tothe arrangement of, and relations between, the parts or elements of thecontent item. In this context, the “parts or elements of the contentitem” refers to the substance of the content, i.e., the semantic meaningof the content. For example, if a content item is an ebook telling afictional story, the structure of the content refers to a semanticdescription the characters and events described in the story, such as “Amarries B; they have a child C; A and B divorce; A marries E; B dies.”Each of these events introduces or modifies a relationship betweenelements in the story.

The content structure server 110 uses the determined structure of acontent item to identify key events in the content item. A “key event”is an event that has a significant impact on the semantic meaning of thecontent within the content item. For example, a key event might be theintroduction of an entity, such as a character, or an event that affectsthe entity in a way that is meaningful to the overall content. Returningto the example of the fiction ebook, key events might be those describedabove: “A marries B; they have a child C; A and B divorce; A marries E;B dies.” Other events described in the story, such as “B has lunch” mayhave lesser impact on the story and are not necessarily key events.

The content structure server 110 associates the identified key eventswith specified locations in the content item. A location refers to aposition within the content item, such as a particular sentence,paragraph, or chapter in an ebook or a particular time index in a video.Thus, the content structure server 110 identifies key events in thecontent item, and the positions in the content item at which the keyevents occur.

The clients 130 are electronic computing devices used by one or moreusers to perform functions such as consuming digital content items(e.g., reading an ebook), participating in social interactions withusers of other clients, and browsing content hosted by servers on thenetwork 140. For example, a client 130 may be a dedicated ebook reader,a smart phone, or a tablet, notebook, or desktop computer. The client130 includes and/or interfaces with a display that presents contentitems, such ebooks, to the user. In addition, the client 130 provides auser interface (UI), such as physical and/or on-screen buttons, withwhich the user may interact with the client. For example, the user mayhighlight or otherwise annotate portions of the content.

The client 130 includes a presentation module 150 that presents digitalcontent and other information to the user of the client. The presentedcontent may include ebook text, video images, and other content fromcontent items. In one embodiment, the presentation module 150 receives alist of key events for a content item from the content structure server110. In addition, the presentation module 150 tracks the user's currentposition in the content item. For example, the presentation module 150may track the user's current reading position in an ebook.

The presentation module 150 uses the list of key events in combinationwith the user's current position in the content item to determine whichof the key events the user has encountered, and which key events theuser has not yet encountered. For example, if A marries B at location20, and they have child C at location 50, and the user's currentposition in the content item is location 30, then the user hasencountered (e.g., read about) the “marriage” key event but not the“having a child” key event.

In one embodiment, the presentation module 150 filters socialcommunications received by the client 130 to prevent the user frominadvertently learning about key events the user has not encountered.The presentation module 150 uses the user's position in the content itemrelative to the key events in the content item to filter out (e.g.,block, redact, obscure, or otherwise flag) social communicationsreceived by the client 130 that relate to, or may relate to, key eventsin the content item not encountered by the user. In this way, the usermay engage in social communications without inadvertently readingcommunications that give away (e.g., spoil) key events such as importantplot points. In addition, the presentation module 150 may tag outgoingsocial media communications made by the user of the client 130 tosupport social communications filtering by other clients.

The social communications server 120 provides electronic discussionforums where users of clients 130 may discuss content items with otherusers. The social communications server 120 may maintain separatediscussion forums for separate content items. For example, the socialcommunications server 120 may have different forums for differentebooks.

Users of the clients 130 can participate in the forums by postingmessages of their own and reading messages posted by other users. In oneembodiment, the social communications server 120 filters messages usingusers' current locations and lists of key events in the content items ina manner similar to the presentation module 150 described above. Thus,the social communications server 120 allows users to discuss contentitems such as ebooks without risking that the users will inadvertentlylearn of key events that the users have not encountered.

The network 140 enables communications among the content structureserver 110, social communications server 120, and clients 130. In oneembodiment, the network 140 uses standard communications technologiesand/or protocols. In another embodiment, the network 140 uses customand/or dedicated data communications technologies.

In situations in which the systems discussed here collect personalinformation about users, or may make use of personal information, theusers may be provided with an opportunity to control whether programs orfeatures collect user information (e.g., information about content itemsa user has read or is reading, about a user's social network, socialactions or activities, profession, or preferences), or to controlwhether and/or how to receive content from the servers that may be morerelevant to the user. In addition, certain data may be treated in one ormore ways before it is stored or used, so that personally identifiableinformation is removed. For example, a user's identity may be treated sothat no personally identifiable information can be determined for theuser, or a user's geographic location may be generalized where locationinformation is obtained (such as to a city, ZIP code, or state level),so that a particular location of a user cannot be determined. Thus, theuser may have control over how information is collected about the userand used by the content structure server 110, social communicationsserver 120, and client 130.

The entities shown in FIG. 1 are implemented using one or morecomputers. FIG. 2 is a high-level block diagram of a computer 200 foracting as the content structure server 110, the social communicationsserver 120, and/or a client 130 according to one embodiment. Illustratedare at least one processor 202 coupled to a chipset 204. Also coupled tothe chipset 204 are a memory 206, a storage device 208, a keyboard 210,a graphics adapter 212, a pointing device 214, and a network adapter216. A display 218 is coupled to the graphics adapter 212. In oneembodiment, the functionality of the chipset 204 is provided by a memorycontroller hub 220 and an I/O controller hub 222. In another embodiment,the memory 206 is coupled directly to the processor 202 instead of thechipset 204.

The storage device 208 is any non-transitory computer-readable storagemedium, such as a hard drive, compact disk read-only memory (CD-ROM),DVD, or a solid-state memory device. The memory 206 holds instructionsand data used by the processor 202. The pointing device 214 may be amouse, track ball, touch sensitive display, or other type of pointingdevice, and is used in combination with the keyboard 210 to input datainto the computer system 200. The graphics adapter 212 displays imagesand other information on the display 218. The network adapter 216couples the computer system 200 to the network 150.

As is known in the art, a computer 200 can have different and/or othercomponents than those shown in FIG. 2. In addition, the computer 200 canlack certain illustrated components. For example, the computers actingas the content server 110 can be formed of multiple blade servers linkedtogether into one or more distributed systems and lack components suchas keyboards and displays. Moreover, the storage device 208 can be localand/or remote from the computer 200 (such as embodied within a storagearea network (SAN)).

The computer 200 is adapted to execute computer program modules forproviding functionality described herein. As used herein, the term“module” refers to computer program logic utilized to provide thespecified functionality. Thus, a module can be implemented in hardware,firmware, and/or software. In one embodiment, program modules are storedon the storage device 208, loaded into the memory 206, and executed bythe processor 202.

FIG. 3 is a high-level block diagram illustrating details of the contentstructure server 110 according to one embodiment. In the embodimentshown, the content structure server 110 contains a variety of differentmodules. Those of skill in the art will recognize that other embodimentsof the content structure server 110 can have different and/or additionalmodules other than the ones described here, and that the functions maybe distributed among the modules in a different manner.

A network interface module 310 sends and receives data on the network140. The network interface module 310 allows the content structureserver 110 to interface with other servers and clients 130 connected tothe network. Via the network interface module 310, the content structureserver 110 receives data such as content items (e.g., ebooks) andstructure data used to identify key events in the content items.Likewise, the content structure server 110 uses the network interfacemodule 310 to provide information such as lists of key events in thecontent items to the clients 130 and social communications server 120.

A content structure database module 320 (referred to as the “database”)stores data used and generated by the content structure server 110.These data include the content items, data describing the structure ofthe content items, intermediate data generated while the contentstructure server 310 determines the structure of the content items, andlists of key events and associated locations in the content items. Thedatabase 320 may store additional and/or other data in otherembodiments.

In more detail, an embodiment of the database 320 stores content itemssuch as the text of ebooks, the videos of movies, and other such data.In one embodiment, the database 320 receives the content items fromcontent distributors. The distributors are authoritative sources of thecontent items. For example, the content distributor for an ebook may bethe publisher or author of the ebook.

In addition, the database 320 may store structure data received from thecontent distributors or other sources that describe the structure of thecontent items. In one embodiment, the content distributors providestructure data describing structured representations of the contentitems. For example, the publisher of an ebook may provide dataindicating a list of entities associated with the ebook, a list ofevents involving the entities in the ebook, and descriptions of where inthe ebook the events occur. The structure data may be providedseparately from the content items, or may be embedded within the contentitems through the use of tags or other markers.

The database 320 may also store structure data received from the clients130. In one embodiment, annotation data describing annotations ofcontent items made by the users of the clients 130 are provided to thecontent structure server 110 and stored in the database 320. Theannotation data identify annotated locations within the content items.The annotations may include comments made by the users that areassociated with the annotated locations.

A structure generation module 330 analyzes content items in view of thestructure data to generate structured representations of the contentitems. The structured representation of a content item describes thearrangement of, and relations between, the entities and eventsreferenced in the content item. In addition, the structuredrepresentation of a content item associates the entities and events withspecific locations in the content item. For example, if the content itemis an ebook the structured representation of the ebook associates theentities and events with specific locations in the text where theentities and events are described or otherwise referenced.

The structured representation of a content item may also includeimportance scores indicating the relative importance of the entities andevents to the content item. The importance scores may be representedusing numeric values, where a higher value indicates more importance.Thus, a major character in a story may have a higher importance scorethan a minor character.

In one embodiment, the structure generation module 330 generates thestructured representation of a content item as a graph that describesthe relationships among the entities and events in the content item. Thenodes of the graph represent entities and events, and the edges of thegraph represent plot arcs—connections among the entities and events thatrelate to the plot. The edges of the graph may be directed so that thegraph describes a sequence indicating the temporal order in which theentities are introduced and events occur in the content item.

The structure generation module 330 may generate the structuredrepresentation of a content item using one or more of a variety oftechniques. In one embodiment, the structure data received from thecontent distributor explicitly describes the structure of the contentitem. Accordingly, the structure generation module 330 parses thestructure data and generates the structured representation of thecontent item (e.g., the graph) therefrom. The structure data mayexplicitly specify importance scores for the entities and events in thecontent item. Additionally, the structure generation module 330 mayderive the importance scores from the structure data by determiningwhich entities or events are more important than others. For example,the structure generation module 330 may determine the relativeimportances of entities based on how often the entities are referencedin the structure data and/or content item, and determine the relativeimportance of events based on the importances of the entities associatedwith the events.

In another embodiment, the structure generation module 330 uses implicitstructure data, such as annotations, to generate the structuredrepresentation of a content item. To this end, the structure generationmodule 330 analyzes annotations of a content item received from manydifferent users to determine the frequencies at which individualportions of the content item are annotated. The frequency of annotationsis treated as a signal for the relative importance of the annotatedportions, with more frequent annotations signaling greater importance ofthe annotated portions. In addition, the structure generation module 330may analyze the annotated portions of the content item, as well as thecomments within the annotations, to identify and determine theimportance of the entities or events referenced therein. The structuregeneration module 330 uses this information to derive the importancescores for the entities and events.

Furthermore, the annotation data may explicitly describe the structureof a content item. In one embodiment, the users of the clients 130 makeannotations that explicitly describe the structure of the content. Forexample, the users may make an annotation that explicitly flags alocation in the content item as relating to a specific entity or event,and/or indicates the relative importance of the annotated portion. Thestructure generation module 330 uses this information to derive theimportance scores.

In still another embodiment, the structure generation module 330analyzes the content within the content item to generate the structuredrepresentation. For an ebook, the structure generation module 330 mayapply natural language processing in combination with machine learningtechniques to identify entities and events referenced in the text. Inaddition, the structure generation module 300 may identify portions ofthe content items that are more important compared to other portions, aswell as the entities and events referenced in these portions, and usethis information to derive the importance scores.

A key event identification module 340 analyzes structuredrepresentations of content items to identify key events describedtherein. The key event identification module 340 thus produces a list ofkey events for a content item, such as for a particular ebook. The listsof key events are stored in the database 320, and are also provided tothe clients 130 and/or the social communications server 120.

The structured representation of a content item may explicitly identifythe key events. For example, the structure data received from thecontent distributor may explicitly identify certain events as key eventsfor a content item. Likewise, the annotations received from the usersmay explicitly identify the key events. In this case, the key eventidentification module 340 may list the identified events as the keyevents for the content item. The key event identification module 340 mayalso combine and/or weight information received from users in order toidentify the key events. For example, the key event identificationmodule 340 may list an explicitly-identified event as a key event onlyif a threshold number of users designate the event as being key.

Additionally, the key event identification module 340 may use theimportance scores in a structured representation of a content item toidentify the key events for that item. In one embodiment, the key eventidentification module 340 identifies events of more than a thresholdlevel of importance as key events. The threshold used by the module 340may vary in different embodiments. The threshold may be a fixed value,so that all events with importance scores exceeding the fixed value areidentified as key events. The threshold may also be a variable value,with the value set so that only the N most important events areidentified as key events, where N is an integer such as five. Otherembodiments may use additional and/or different techniques to identifythe key events for a content item.

FIG. 4 is a high-level block diagram illustrating details of thepresentation module 150 of a client 130 according to one embodiment. Inthe embodiment shown, the presentation module 150 contains a variety ofdifferent modules. Other embodiments of the presentation module 150 canhave different and/or additional modules other than the ones describedhere, and that the functions may be distributed among the modules in adifferent manner.

A content module 410 presents content items such as ebooks to a userusing the client 130. The content can be presented visually on a displayof the client 130 and/or as audio content (e.g., a pre-recorded narratorreading or using text-to-speech technology). The content module 410 alsocommunicates with servers on the network 140, such as the contentstructure server 110, order to obtain content items, lists of key eventsfor content items, structured representations of content items, andother data.

The content module 410 also tracks the current location of the user inthe content item. That is, the content module 410 tracks which portionsof the content item the user has consumed. For example, the contentmodule 410 tracks the user's current reading location in an ebook.

An annotation module 420 provides a user interface in conjunction withthe content item being presented by the content module 410 that enablesa user to add annotations to the content item. The annotations includeannotation comments and annotation metadata. An annotation comment isthe body of an annotation that is provided by the user and can includetext, images, audio recordings, video, and the like. Annotationmetadata, in contrast, is any additional information about theannotation comment, such as the specific content item and portionthereof to which the annotation corresponds and the identity of theuser. The annotation 420 may specify the portion of content item towhich the annotation corresponds as a position range, including a startposition and an end position in the content item.

In one embodiment, the annotation module 420 enables a user toexplicitly specify the structure of a content item. As mentionedearlier, the annotation module 420 may allow the user to explicitlyindicate that the annotated portion of the content item references aparticular entity or event. Likewise, the annotation module 420 mayallow the user to explicitly specify the relative importance of entitiesor events, and to identify key events. To this end, the annotationmodule 420 may accept textual annotations that contain explicit stringsdescribing these aspects of the structure of the content item. Forexample, the annotation module 420 may accept the annotation content“#key_event” as labeling a key event.

In another embodiment, the annotation module 420 provides the user withone or more dialog boxes or other user interface elements that query theuser as to the structure of the content. For example, the annotationmodule 420 can ask the user to explicitly identify key events, or torate the relative importance of events or entities referenced in anannotated portion. In addition, the annotation module 420 can ask theuser to vote on annotations made by other users. For example, a user canvote on whether another user has correctly identified a portion of acontent item as relating to a key event.

A social interaction module 430 monitors social communications receivedand sent by the user of the client 130 to prevent users frominadvertently learning about key events that the users have notencountered in content items. The social interaction module 430 receivesthe user's current location in a content item and a list of key eventsin the content item from the content module 410.

In one embodiment, the social interaction module 430 identifies outgoingsocial communication messages made by the user of the client 130 thatpertain to a content item presented by the content module 410. Thesocial interaction 430 module may identify pertinent messages byexamining data within the messages for keywords or other signifiers thatthe messages pertains to the content item. In addition, the socialinteraction module 430 may examine the destination of the message (e.g.,the network address to which the message is being sent) to determinewhether the destination pertains to the content item (e.g., whether themessage is directed to a forum of the social communications server 120dedicated to the content item).

If the message pertains to a content item presented by the contentmodule 410, the social interaction module 430 tags the message withcontext information identifying the content item and the user's currentposition in the content item. The current position may be specified asan absolute position in the content item, or specified as an intervalbetween two specified key events.

In addition, the social interaction module 430 identifies incomingsocial communication messages made by users of other clients 130 thatpertain to content items presented by the content module 410. In oneembodiment, the social interaction module 430 monitors incoming socialmedia communications to determine whether the communications are taggedwith context information. If a communication is so tagged, the socialinteraction module 430 parses the tag to identify the content item, andthe location in the content item, to which the communication pertains.

If the tag indicates that the content item to which the communicationpertains is a content item presented by the content module 410 (e.g.,the communication pertains to an ebook being read by the user), thesocial interaction module 430 determines whether the location in thecontent item to which the message pertains is after a key event notencountered by the user. If the message pertains to a location after akey event not encountered by the user, the social interaction module 430filters out the message to prevent the user from inadvertently seeingit. The social interaction module 430 allows the user to see the messageif it does not pertain to a location in the content item after a keyevent not encountered by the user.

For example, assume the content item is an ebook telling a story inwhich A marries B at location 20, A and B have a fight at location 30,and they have child C at location 50. However, the fight at location 30is inconsequential to the overall story and therefore not a key event.If the user has read up to location 25 of the ebook, the socialinteraction module 430 allows the user to see a message that pertains tolocation 30 because the fight described at that location is not a keyevent. However, the presentation module 150 filters out any messagesthat pertain to location 50 or later because such messages may refer tothe birth of C, a key event not yet encountered by the user.

A structure presentation module 440 presents the user of the client 130with graphical representations of the structures of content items. Thestructure presentation module 440 receives the structured representationof a content item from the content module 410. Recall that in oneembodiment the structured representation is a graph that describes theentities and events in the content item. The structure presentationmodule 440 graphically displays this graph on the client 130. Thisdisplay allows the user of the client 130 to visually perceive thestructure of the content item, and may enhance the user's understandingand enjoyment of the content item. For example, the display may allowthe user to better understand the relationships between the entities andevents described in an ebook.

Further, an embodiment of the structure presentation module 440 modifiesthe structured representation to show only portions of therepresentation that relate to portions of the content item alreadyconsumed by the user. For example, the illustrated graph structure canshow only the characters, events, and plot arcs in the portion of anebook read by the user. The structure presentation module 440 can alsoillustrate how the content item develops over time by showing ananimation of how the graph develops linearly through the content.Furthermore, the structure presentation module 440 can use differentillustrations in the graphical representation to represent differenttypes of entities, events, and plot arcs.

An abridgment module 450 provides the user of the client 130 withabridged versions of content items based on the structuredrepresentations. In one embodiment, the abridgement module 450 causesthe content module 410 to present portions of a content item related toentities and events described in the structured representation of thecontent. For example, the abridgment module 450 may cause the contentmodule 410 to present only portions of the content item related to aspecific character or event, thereby forming an abridged version of thecontent item.

The abridgement module 450 may present an interface to the user thatallows the user to specify which abridged content to present. Forexample, the abridgement module 450 may provide the user with a list ofcharacters referenced in an ebook. Upon receiving the selection of acharacter, the abridgement module 450 may analyze the structuredrepresentation of the ebook to identify the portions of the ebook thatreference the character, and cause only these portions to be displayedby the content module 410.

FIG. 5 is a high-level block diagram illustrating details of the socialcommunications server 120 according to one embodiment. In the embodimentshown, the social communications server 120 contains a variety ofdifferent modules. Other embodiments of the social communications server120 can have different and/or additional modules other than the onesdescribed here, and that the functions may be distributed among themodules in a different manner.

A discussion module 510 provides discussion forums for digital contentitems. As mentioned earlier, users of the clients 130 can participate inthe forums by posting messages of their own and reading messages postedby other users. Depending upon the embodiment, the discussion module 510may provide a single or multiple discussion forums for a content item.

In the latter embodiment, the forum for a content item may includemultiple subforums. Each subforum is associated with an intervalsbetween key events in the content item. For example, if the key eventsfor a content item include A marrying B at location 20, and A and Bhaving a child C at location 50, the discussion module 510 may maintainone subforum for the interval between locations zero and 19, anothersubforum for the interval between locations 20 and 49, and a thirdsubforum for the interval between location 50 and the location of thenext key event. The subforums may be virtual in the sense that the userswho participate in the discussion forums are not necessarily aware ofthe logical division of the forum for the content item into subforums.Rather, each subforum is presented to the users as if it is the onlyforum for the content item.

A location module 520 determines the current locations of users incontent items about which the users are posting in the discussionforums. The location module 520 may determine the current locations fromcontext information in the tags applied to outgoing socialcommunications by the clients 130. The location module 520 may alsodetermine the current locations using other techniques, such as byquerying the users for this information or by receiving the locationinformation from the clients 130 via other channels.

A discussion filtering module 530 filters the discussions in thediscussion forums provided by the discussion module 510 based on theusers' current locations in the content items and the key events for thecontent items. This filtering prevents users from inadvertently learningof key events they have not encountered in the content items.

In an embodiment in which there are multiple subforums for a contentitem, the discussion filtering module 530 automatically places users inthe subforum corresponding to the user's current location in the contentitem. Thus, if the subforums correspond to intervals between key events,the discussion filtering module 530 places a user in the subforum forthe interval containing the user's current location. In this manner, theuser discusses the content item with only other users who are atapproximately the same location in the content item. While the users maybe at different locations, the other users have encountered the same setof key events in the content item. Thus, it is unlikely that a post fromone user will inadvertently expose the other users to key events ofwhich they are not already aware. The discussion filtering module 530advances the users to the appropriate subforums as the users movethrough the content items.

In an embodiment having a single discussion forum for a content item,the discussion filtering module 530 filters individual messages based oncurrent locations and key events to prevent users from reading messagesabout key events they have not encountered. For a user participating ina forum, the discussion filtering module 530 identifies and filters outany messages made by other users who have current locations past a keyevent not yet encountered by the first user. This filtering prevents theuser from reading messages that might expose key events of which theuser is not aware.

FIG. 6 is a flowchart illustrating a process for using content structureto socially connect users according to one embodiment. While thedescriptions of FIGS. 1-5 attribute some of these steps to specificentities illustrated in those figures, the steps may be performed byother entities in some embodiments. In addition, some embodiments mayperform the steps in parallel, perform the steps in different orders, orperform different steps.

The structure of a content item is determined 610 in order to produce astructured representation of it. The structure may be determined usingexplicit structure data received from a content distributor or othersource. The structure may also be determined using implicit structuredata such as annotations of the content item received from clients 130.The structured representation of the content item includes importancescores indicating the relative importance of entities and events withinthe content item. In one embodiment, the structured representation ofthe content item is a graph with nodes representing entities and eventsand edges representing connections among the entities and events thatrelate to the plot.

The structured representation of the content item is analyzed 620 toidentify key events within it. The structured representation mayexplicitly identify the key events. In addition, the importance scoresof the entities and events may be used to identify the key events. Forexample, events having importance scores that exceed a threshold may beidentified as key events. The key events are associated with locationsin the content item, such that intervals are formed between key eventsin the content item.

A user's current location in the content item is determined 630. Forexample, if the content item is an ebook, the user's current readinglocation in the ebook is determined. The current location falls withinone of the intervals formed between the identified key events in thecontent item. In one embodiment, the user's outbound socialcommunication messages are tagged with context information including anidentifier of the content item and the location in the content item towhich the message pertains (e.g., the user's current location in thecontent item).

The user's social communications about the content item are filtered 640responsive to the key events. Specifically, the user's inbound socialcommunication messages are filtered 640 to prevent the user from beinginadvertently exposed to information about key events not encountered bythe user. The inbound social communications may be filtered such thatthe user sees only communications from other users having currentlocations in the same interval between key events as the user. In thismanner, the user is unlikely to view communications that relate to keyevents in the content item that occur after the user's current location.

The techniques for using content structure to socially connect usersdescribed above may be used in different configurations and embodiments.For example, embodiments may lack a social communications server 120 andinstead use the social interaction modules 430 of the clients 130 tofilter social communications. Alternatively, embodiments may include asocial communications server 120 that receives tagged socialcommunications from the clients 130 and performs filtering on behalf ofthe clients, so that the social interaction modules 430 of the clientsneed not perform any additional filtering. In some embodiments, thecontent structure server 110 is absent and its functions are performedby modules in the clients 130 or other entities.

In addition, the users need not be consuming the same types of contentitems. For example, the techniques described above may be used to filtercommunications between readers of ebooks and watchers of videoscorresponding to the ebooks. Social communications between readers atcertain locations in the ebooks may be filtered with respect to watchersat certain locations in the movies and vice versa. Likewise, thetechniques can be used to filter social communications among readers ofdifferent versions of content items, such as full and abridged versionsof ebooks.

The above description is included to illustrate the operation of thepreferred embodiments and is not meant to limit the scope of theinvention. The scope of the invention is to be limited only by thefollowing claims. From the above discussion, many variations will beapparent to one skilled in the relevant art that would yet beencompassed by the spirit and scope of the invention.

What is claimed is:
 1. A computer-implemented method of using astructure of a digital content item to socially connect users consumingthe digital content item, comprising: determining a structuredrepresentation of the digital content item that describes a semanticmeaning of content within the digital content item; analyzing thestructured representation to identify key events within the digitalcontent item, the analysis comprising: examining the semantic meaning ofthe content within the digital content item to identify a plurality ofevents described within the digital content item; determining relativeimportances of the plurality of events; and identifying a subset of theplurality of events as key events responsive to the relative importancesof the plurality of events; identifying a user's current location withinthe digital content item; and filtering electronic social communicationsof the user made on a communications network, responsive to the user'scurrent location and the identified key events within the digitalcontent item, the filtering comprising: determining, responsive to theuser's current location, one or more key events of the identified keyevents within the digital content item that the user has notencountered; identifying, in an electronic discussion forum for thedigital content item, social communication messages made by other userswho have current locations within the digital content item past a keyevent of the identified key events within the digital content item thatthe user has not encountered; and filtering out the identified socialcommunication messages in the electronic discussion forum made by theother users who have current locations past the key event within thedigital content item that the user has not encountered.
 2. Thecomputer-implemented method of claim 1, wherein determining thestructured representation of the digital content item comprises:receiving annotation data for the digital content item from a pluralityof users; determining, responsive to the annotation data, frequencies atwhich portions of the digital content item are annotated; anddetermining relative importances of the portions of the digital contentitem responsive to the determined frequencies; wherein the key eventswithin the digital content item are identified responsive to therelative importances of the portions.
 3. The computer-implemented methodof claim 1, wherein identifying the user's current location within thedigital content item comprises: determining a current reading positionof the user in the digital content item.
 4. The computer-implementedmethod of claim 1, wherein filtering electronic social communications ofthe user responsive to the user's current location and the identifiedkey events further comprises: providing a plurality of electronicdiscussion forums for the digital content item, the electronicdiscussion forums corresponding to a plurality of intervals between keyevents of the identified key events within the digital content item;determining an interval of the plurality of intervals containing theuser's current location in the digital content item; and placing theuser in an electronic discussion forum of the plurality of electronicdiscussion forums corresponding to the interval containing the user'scurrent location in the digital content item.
 5. Thecomputer-implemented method of claim 1, wherein identifying the user'scurrent location within the digital content item comprises: receiving asocial communication message from the user; and parsing a tag associatedwith the received social communication message to determine a locationin the digital content item to which the social communication messagepertains.
 6. A non-transitory computer-readable storage medium storingexecutable computer program instructions for using a structure of adigital content item to socially connect users consuming the digitalcontent item, the instructions executable to perform steps comprising:determining a structured representation of the digital content item thatdescribes a semantic meaning of content within the digital content item;analyzing the structured representation to identify key events withinthe digital content item, the analysis comprising: examining thesemantic meaning of the content within the digital content item toidentify a plurality of events described within the digital contentitem; determining relative importances of the plurality of events; andidentifying a subset of the plurality of events as key events responsiveto the relative importances of the plurality of events; identifying auser's current location within the digital content item; and filteringelectronic social communications of the user made on a communicationsnetwork, responsive to the user's current location and the identifiedkey events within the digital content item, the filtering comprising:determining, responsive to the user's current location, one or more keyevents of the identified key events within the digital content item thatthe user has not encountered; identifying, in an electronic discussionforum for the digital content item, social communication messages madeby other users who have current locations within the digital contentitem past a key event of the identified key events within the digitalcontent item that the user has not encountered; and filtering out theidentified social communication messages in the electronic discussionforum made by the other users who have current locations past the keyevent within the digital content item that the user has not encountered.7. The non-transitory computer-readable storage medium of claim 6,wherein determining the structured representation of the digital contentitem comprises: receiving annotation data for the digital content itemfrom a plurality of users; determining, responsive to the annotationdata, frequencies at which portions of the digital content item areannotated; and determining relative importances of the portions of thedigital content item responsive to the determined frequencies; whereinthe key events within the digital content item are identified responsiveto the relative importances of the portions.
 8. The non-transitorycomputer-readable storage medium of claim 6, wherein identifying theuser's current location within the digital content item comprises:determining a current reading position of the user in the digitalcontent item.
 9. The non-transitory computer-readable storage medium ofclaim 6, wherein filtering electronic social communications of the userresponsive to the user's current location and the identified key eventsfurther comprises: providing a plurality of electronic discussion forumsfor the digital content item, the electronic discussion forumscorresponding to a plurality of intervals between key events of theidentified key events within the digital content item; determining aninterval of the plurality of intervals containing the user's currentlocation in the digital content item; and placing the user in anelectronic discussion forum of the plurality of electronic discussionforums corresponding to the interval containing the user's currentlocation in the digital content item.
 10. The non-transitorycomputer-readable storage medium of claim 6, wherein identifying theuser's current location within the digital content item comprises:receiving a social communication message from the user; and parsing atag associated with the received social communication message todetermine a location in the digital content item to which the socialcommunication message pertains.
 11. A computing device for using astructure of a digital content item to socially connect a user consumingthe digital content item using the computing device, comprising: acomputer processor for executing computer program instructions; and anon-transitory computer-readable storage medium storing computer programinstructions executable to perform steps comprising: determining astructured representation of the digital content item that describes asemantic meaning of content within the digital content item; analyzingthe structured representation to identify key events within the digitalcontent item, the analysis comprising: examining the semantic meaning ofthe content within the digital content item to identify a plurality ofevents described within the digital content item; determining relativeimportances of the plurality of events; and identifying a subset of theplurality of events as key events responsive to the relative importancesof the plurality of events; identifying the user's current locationwithin the digital content item; and filtering electronic socialcommunications of the user made on a communications network, responsiveto the user's current location and the identified key events within thedigital content item, the filtering comprising: determining, responsiveto the user's current location, one or more key events of the identifiedkey events within the digital content item that the user has notencountered; identifying, in an electronic discussion forum for thedigital content item, social communication messages made by other userswho have current locations within the digital content item past a keyevent of the identified key events within the digital content item thatthe user has not encountered; and filtering out the identified socialcommunication messages in the electronic discussion forum made by theother users who have current locations past the key event within thedigital content item that the user has not encountered.
 12. Thecomputing device of claim 11, the steps further comprising: receiving anannotation of a portion of the digital content item from the user; andproviding annotation data describing the annotation to a contentstructure server, wherein the content structure server is adapted to:receive annotation data for the digital content item from a plurality ofusers; determine, responsive to the annotation data, frequencies atwhich portions of the digital content item are annotated; identify keyevents within the digital content item responsive to the frequencies atwhich portions of the digital content item are annotated; and provide alist of the identified key events within the digital content item to thecomputing device.
 13. The computing device of claim 11, whereinidentifying key events within the digital content item comprises:providing a user interface adapted to receive an identification of a keyevent of the identified key events within the digital content item fromthe user; and receiving, via the user interface, the identification ofthe key event within the digital content item from the user.
 14. Thecomputing device of claim 11, wherein filtering electronic socialcommunications of the user responsive to the user's current location andthe identified key events within the digital content item furthercomprises: identifying an outbound electronic social communication madeby the user pertaining to the digital content item; and tagging theoutbound electronic social communication with context informationidentifying the content item and the user's current location within thedigital content item.
 15. The computing device of claim 11, whereinidentifying the user's current location within the digital content itemcomprises: determining a current reading position of the user in thedigital content item.